iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0

身為Ruby玩家,做事前(變數)總是不講(宣告)就直接做,但是隨著程式越寫越多之後,變數總是會在莫名其妙的地方相撞XD,有問題就給他扛下去!
Yes
好了!經過了昨天現在的文不對題,
今天就來比較一下變數不一樣的地方。

變數

首先先看一下Golang的變數宣告,

 var tmp string

一開始看到這個我就頭痛,這啥鬼的變數宣告啊!!!!
先來顆普拿疼...
普拿疼
不過接著繼續看原來還有其他的宣告方法,

var tmp = "hello" 
/*同等於*/ 
tmp := "hello"

看一看覺得這宣告也太牛了吧,
這~麽的方便?
But...就是這個 But
Golang不是靜 態 語 言?
宣告起來怎麼跟JavaScript一樣?
尤其還看到這個:=
這還是我第一次看到這樣特別的用法,
不過也是這樣子的用法讓我現在在宣告都少打了很多字了呢!
(且剛好那陣子JavaScript寫的有點多,一度懷疑他真的是靜態語言?)
NY

然而在Ruby每個東西都可當個物件,
Ruby有個好用的東西就是irb以及Railsrails console
這兩個都可以在終端機上使用,真的是好物!
以下以irb做範例:

~ > irb
2.5.0 :001 > tmp = 123
 => 123
2.5.0 :002 > tmp = "hello"
 => "hello"

在宣告完一個型別後可以在立即把它換成其他型別,
是不是很方便啊(推坑),
不過這也會造成變數在宣告上如果定義不清楚的話很容易打架(<<受害者)。

常數

Golang還有一個常數宣告方法const
這個宣告下去之後變數就不能改變,

const TMP = "MyKey"

但是Ruby如果要宣告的常數不能被改變的話,
就得在後面加上freeze這個函式,

TMP = "Yeeeeeee"
TMP.freeze       //這步驟過後 TMP 才不能改變哦!

我覺得在常數這點Golang就表現得可圈可點(蓋章)

結語

過往我在看任何程式碼都是看到像是tmp = 123這樣子的宣告方法,
如今Golang來了個tmp := 123這樣子的宣告,
讓我覺得好像哪邊怪怪的。(咦?)
但也因為這樣讓Golang很有彈性了!
:=讓我在寫程式時能比較靈活的宣告變數,
提醒:不過如果宣告了一種形別的變數就不能再任意改成另一種型別哦,
千萬別把它當成JavaScript寫XD

tmp := "aaaa"

tmp := 123 // 安捏姆湯喔!
tmp := "bbbb" //安捏賀喔!

變數的比較就先寫到這了,如果有相關問題或是有疑慮都可以回饋給我哦!

參考

30天就Go(4):變數型態及宣告


上一篇
菜雞的踩坑之旅 Day 1 - 事前準備
下一篇
菜雞的踩坑之旅 Day 3 - 迴圈
系列文
菜雞的踩坑之旅 - 從 Ruby on Rails 轉換 Golang 的奇幻旅程3
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言